#ifndef FILTERMASKFACTORY_H
#define FILTERMASKFACTORY_H

#include "FilterMask.h"
class FilterMaskFactory
{
private:
    static FilterMask* GetWeightedFilterMask(void* filterParameter);
    static FilterMask* GetMeanFilterMask(void* filterParameter);
    static FilterMask* GetPointSharpeningFilterMask(void* filterParameter);
    static FilterMask* GetPointDetectionFilterMask(void* filterParameter);
    static FilterMask* GetVerticalLineSharpeningFilterMask(void* filterParameter);
    static FilterMask* GetHorizontalLineSharpeningFilterMask(void* filterParameter);
    static FilterMask* GetLeftDiagonalLineSharpeningFilterMask(void* filterParameter);
    static FilterMask* GetRightDiagonalLineSharpeningFilterMask(void* filterParameter);
    static FilterMask* GetVerticalLineDetectionFilterMask(void* filterParameter);
    static FilterMask* GetHorizontalLineDetectionFilterMask(void* filterParameter);
    static FilterMask* GetRightDiagonalLineDetectionFilterMaskFilterMask(void* filterParameter);
    static FilterMask* GetLeftDiagonalLineDetectionFilterMask(void* filterParameter);
    static FilterMask* GetUserDefinedFilterMask(void* filterParameter);

public:
    static FilterMask* GetFilterMask(FilterType type, void* maskParameter = NULL);

};

#endif // FILTERMASKFACTORY_H
